home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / libraries / bgui10.lha / docs / windowclass.doc < prev   
Encoding:
Text File  |  1994-10-06  |  25.3 KB  |  726 lines

  1.  
  2.            $RCSfile: windowclass.doc,v $
  3.         Description: Windowclass documentation.
  4.           Copyright: (C) Copyright 1994 Jaba Development.
  5.                      (C) Copyright 1994 Jan van den Baard.
  6.                      All Rights Reserved.
  7.  
  8.             $Author: jaba $
  9.           $Revision: 1.5 $
  10.               $Date: 1994/10/02 14:17:41 $
  11. ------------------------------------------------------------------------------
  12.  
  13. TABLE OF CONTENTS
  14.  
  15. windowclass/--background--
  16. windowclass/Methods
  17. windowclass/Attributes
  18.  
  19. windowclass/--background--                          windowclass/--background--
  20.  
  21.     NAME
  22.         Class:          windowclass
  23.         Superclass:     ROOTCLASS
  24.         Include File:   <libraries/bgui.h>
  25.  
  26.     FUNCTION
  27.         To  provide  an  easy  to use BGUI interface to intuition windows. The
  28.         window  class  provides just about anything you need to create windows
  29.         with a fully font sensitive and size adjustable GUI.
  30.  
  31. windowclass/Methods                                        windowclass/Methods
  32.  
  33.     NEW METHODS
  34.         WM_OPEN -- This method must be used to open the window.  When a window
  35.                 object is created it does not open right away.
  36.  
  37.                 Returns a pointer to the opened window uppon success  and NULL
  38.                 uppon failure.
  39.  
  40.         WM_CLOSE -- This method must be used to close the window again.  It is
  41.                 safe to call this method even when the window is not open.
  42.  
  43.                 Returns TRUE uppon success and FALSE uppon failure.
  44.  
  45.         WM_SLEEP -- With this method you can put your window to sleep  when it
  46.                 is  open.   This  is  done  by  setting  up a  small invisible
  47.                 requester and a busy pointer.
  48.  
  49.                 Returns TRUE uppon success and FALSE uppon failure.
  50.  
  51.         WM_WAKEUP -- This methos must be  used to  wake  up the  window again.
  52.                 Please note that you must wake up the window as many  times as
  53.                 you have put it to sleep before you can actually use it again.
  54.                 Both the WM_SLEEP and WM_WAKEUP methods can be nested.
  55.  
  56.                 Returns TRUE uppon success and FALSE uppon failure.
  57.  
  58.         WM_HANDLEIDCMP -- This method must be  used  to call  the  windowclass
  59.                 event handler. The event handler will  act  uppon the messages
  60.                 present at the window it's message  port  and  return  you one
  61.                 of the following return codes:
  62.  
  63.                 WMHI_CLOSEWINDOW -- The window it's close gadget was selected.
  64.                 WMHI_NOMORE -- No more messages waiting.
  65.                 WMHI_INACTIVE -- The window was de-activated.
  66.                 WMHI_ACTIVE -- The window was activated.
  67.                 WMHI_IGNORE -- Ignore this result.
  68.  
  69.                 Any return code which differs from the ones  above is  the  ID
  70.                 of a selected object (gadget or menu).
  71.  
  72.                 Please look at the demo programs for more information.
  73.  
  74.         WM_GADGETKEY -- With this method you  can  assign a  key to  trigger a
  75.                 gadget object in the window.  This method  uses the  following
  76.                 custom message structure:
  77.  
  78.                 struct wmGadgetKey {
  79.                         ULONG             MethodID;  /* WM_GADGETKEY */
  80.                         struct Requester *wmgk_Requester;
  81.                         Object           *wmgk_Object;
  82.                         STRPTR            wmgk_Key;
  83.                 };
  84.  
  85.                 wmgk_Requester -- This version of the library does not support
  86.                         BGUI gadget objects in requesters  so this  field must
  87.                         be set to NULL.
  88.  
  89.                 wmgk_Object -- This must be  a  pointer to  the  object  which
  90.                         must be controlled by the key.
  91.  
  92.                 wmgk_Key -- This must point to a  string  in   which  a single
  93.                         character is located. The character is  the  key which
  94.                         controls the object when it is pressed.
  95.  
  96.                 Returns TRUE uppon success and FALSE uppon failure.
  97.  
  98.         WM_KEYACTIVE, WM_KEYINPUT, WM_KEY_INACTIVE -- These three  methods are
  99.                 sent to the gadget object during a key-session.  Please  refer
  100.                 to the "methods.doc" file for more information.
  101.  
  102.         WM_DISABLEMENU, WM_CHECKITEM -- These  two  methods  must  be  used to
  103.                 disable or enable a menu or a menu item or to set or clear the
  104.                 check mark of a CHECKIT item.   These  methods  both  use  the
  105.                 following custom message structure:
  106.  
  107.                 struct wmMenuAction {
  108.                         ULONG             MethodID; /* Any of the above. */
  109.                         ULONG             wmma_MenuID;
  110.                         ULONG             wmma_Set;
  111.                 };
  112.  
  113.                 wmma_MenuID -- This must be the ID of the  menu/item  on which
  114.                         the operation is done. The ID is  the value  which you
  115.                         set in the nm_UserData field of the NewMenu structure.
  116.  
  117.                 wmma_Set -- This is a boolean which  disables/checks  the menu
  118.                         when set to  TRUE  or  enables/unchecks the  menu when
  119.                         set to FALSE.
  120.  
  121.                 Returns TRUE uppon success and FALSE uppon failure.
  122.  
  123.         WM_MENUDISABLED, WM_ITEMCHECKED -- These two methods  must  be used to
  124.                 query about the disabled/checked state of a menu. Both methods
  125.                 use the following custom message structure:
  126.  
  127.                 struct wmMenuQuery {
  128.                         ULONG             MethodID; /* Any of the above. */
  129.                         ULONG             wmmq_MenuID;
  130.                 };
  131.  
  132.                 wmmq_MenuID -- This must be the ID of the  menu/item  on which
  133.                         the operation is done. The ID is  the value  which you
  134.                         set in the nm_UserData field of the NewMenu structure.
  135.  
  136.                 Returns TRUE if the menu is disabled/checked and FALSE if not.
  137.                 A return code of ~0 means that the menu is unknown or no menus
  138.                 are available.
  139.  
  140.         WM_TABCYCLE_ORDER -- With this method you can  determine the  order of
  141.                 tab-cycling.  This method uses  the  following  custom message
  142.                 structure:
  143.  
  144.                 struct wmTabCycleOrder {
  145.                         ULONG             MethodID; /* WM_TABCYCLE_ORDER */
  146.                         Object           *wtco_Object1;
  147.                         /* Object        *wtco_Object2; */
  148.                         /* ... */
  149.                         /* NULL */
  150.                 };
  151.  
  152.                 wtco_Object1 -- The first of a the objects which  will be  set
  153.                         in the tab-cycle chain.   Please  note  that you  must
  154.                         terminate the method with a NULL pointer.
  155.  
  156.                 Returns TRUE uppon success and FALSE uppon failure.
  157.  
  158.         WM_GETAPPMSG -- This method must be used  to get the AppWindow message
  159.                 when one is available.  Please note that _you_ are  resposible
  160.                 for replying the message.
  161.  
  162.                 Returns a pointer to the AppMessage or NULL when  there was no
  163.                 message.
  164.  
  165.         WM_ADDUPDATE -- This method must be used  to  perform  simple map-list
  166.                 notification with  externalclass  objects.  The  externalclass
  167.                 objects are not able to perform  notification  like  the other
  168.                 gadget classes. This method uses the  following custom message
  169.                 structure:
  170.  
  171.                 struct wmAddUpdate {
  172.                         ULONG             MethodID; /* WM_ADDUPDATE */
  173.                         ULONG             wmau_SourceID;
  174.                         Object           *wmau_Target;
  175.                         struct TagItem   *wmau_MapList;
  176.                 };
  177.  
  178.                 wmau_SourceID -- This must be the ID of the object that send's
  179.                         the notification message.
  180.  
  181.                 wmau_Target -- This must be a  pointer  to  the  object  which
  182.                         must be updated by the notiication.
  183.  
  184.                 wmau_MapList -- This can pointe to  an  array  of  tags  which
  185.                         contain the attributes to map.  This may also  be NULL
  186.                         in which case no mapping is done.
  187.  
  188.     CHANGED METHODS
  189.         OM_DISPOSE -- When  this  method is called all objects attached to the
  190.                 window with the WINDOW_MasterGroup attribute are also disposed
  191.                 of.
  192.  
  193. windowclass/Attributes                                  windowclass/Attributes
  194.  
  195.     NAME
  196.         WINDOW_Position -- ( ULONG )
  197.  
  198.     FUNCTION
  199.         To determine the position at which the window is opened. These are the
  200.         possibilities:
  201.  
  202.         POS_CENTERSCREEN -- The window is centered in the visible part  of the
  203.                 screen it is opened on.
  204.         POS_CENTERMOUSE -- The window is centered under  the mouse.  Depending
  205.                 on the location of the mouse this might differ a little.
  206.         POS_TOPLEFT -- The window is opened  at  the  top-left  corner  in the
  207.                 visible part of the screen it is opened on.
  208.  
  209.         Default is POS_CENTERSCREEN. Applicability is (I).
  210.  
  211.     SEE ALSO
  212.         WINDOW_PosRelBox
  213.  
  214.     NAME
  215.         WINDOW_ScaleWidth, WINDOW_ScaleHeight -- ( ULONG )
  216.  
  217.     FUNCTION
  218.         To open a window larger than it's minimum size. The data you pass with
  219.         these tags must be the percentage (0%..100%) of the  visible  size  of
  220.         the screen minus the minimum size of the window.  For example you have
  221.         a  window which is 100 pixels wide at it's minimum size  on  a  screen
  222.         which   is  1000   pixels   wide   (visible)   and   you  pass  25  as
  223.         WINDOW_ScaleWidth  the window is opened 325 pixels wide.
  224.  
  225.         (( 1000 - 100 ) / 100 ) * 25 = 225
  226.  
  227.         225 + 100 = 325
  228.  
  229.         Defaults are 0. Applicability is (I).
  230.  
  231.     NAME
  232.         WINDOW_LockWidth, WINDOW_LockHeight -- ( BOOL )
  233.  
  234.     FUNCTION
  235.         To disable sizing the width or height of a window.
  236.  
  237.         Defaults are FALSE. Applicability is (I).
  238.  
  239.     NAME
  240.         WINDOW_PosRelBox -- ( struct IBox * )
  241.  
  242.     FUNCTION
  243.         To open the window centered in the described box.  The  data  you pass
  244.         here must be a pointer to a struct IBox in which the location and size
  245.         of the box is described. This will allow you to easely center a window
  246.         uppon another window like this:
  247.  
  248.         struct Window           *parent;
  249.         struct IBox              position;
  250.         Object                  *window_object;
  251.  
  252.         /*
  253.         **      Copy the parent location/size.
  254.         **/
  255.         position = *(( struct IBox * )&parent->LeftEdge );
  256.  
  257.         window_object = WindowObject,
  258.                 WINDOW_PosRelBox,               &position,
  259.                 ....
  260.         EndObject;
  261.  
  262.     SEE ALSO
  263.         WINDOW_Position
  264.  
  265.     NAME
  266.         WINDOW_DragBar,         WINDOW_SizeGadget,         WINDOW_CloseGadget,
  267.         WINDOW_DepthGadget -- ( BOOL )
  268.  
  269.     FUNCTION
  270.         To switch on or off the corresponding system gadgets.
  271.  
  272.         Default for all are TRUE. Applicability is (I).
  273.  
  274.     NAME
  275.         WINDOW_SizeBottom, WINDOW_SizeBright -- ( BOOL )
  276.  
  277.     FUNCTION
  278.         To determine the place of the sizing gadget.
  279.  
  280.         Default is TRUE for bottom and FALSE for right. Applicability is (I).
  281.  
  282.     NAME
  283.         WINDOW_Activate -- ( BOOL )
  284.  
  285.     FUNCTION
  286.         To activate the window right after it is opened.
  287.  
  288.         Default is TRUE. Applicability is (I).
  289.  
  290.     NAME
  291.         WINDOW_RMBTrap -- ( BOOL )
  292.  
  293.     FUNCTION
  294.         To set/clear the WFLG_RMBTRAP  flag.  When set this disables the right
  295.         from  activating  the  menu-strip.   It will also make the right mouse
  296.         button visible in intuition events.
  297.  
  298.         Default is FALSE. Applicability is (I).
  299.  
  300.     NAME
  301.         WINDOW_SmartRefresh -- ( BOOL )
  302.  
  303.     FUNCTION
  304.         To set/clear the WFLG_SMART_REFRESH flag.
  305.  
  306.         Default is FALSE. Applicability is (I).
  307.  
  308.     NAME
  309.         WINDOW_ReportMouse -- ( BOOL )
  310.  
  311.     FUNCTION
  312.         To set/clear the WFLG_REPORTMOUSE flags.
  313.  
  314.         Default is FALSE. Applicability is (I).
  315.  
  316.     NAME
  317.         WINDOW_IDCMP -- ( ULONG )
  318.  
  319.     FUNCTION
  320.         To set extra IDCMP flags which are not automatically set by the window
  321.         class  itself.  This  might  be  necessary  for  the  WINDOW_IDCMPHook
  322.         described below.   The following  flags are  automatically set  by the
  323.         window class:
  324.  
  325.         IDCMP_RAWKEY                    - Key control of gadgets.
  326.         IDCMP_GADGETUP                  - The obvious.
  327.         IDCMP_CHANGEWINDOW              - To track window changes.
  328.         IDCMP_INACTIVEWINDOW            - To report window inactivation.
  329.         IDCMP_ACTIVEWINDOW              - To report window activation.
  330.         IDCMP_IDCMPUPDATE               - For WM_ADDUPDATE notification,
  331.                                           tab-cycling and continues slider and
  332.                                           scroller reporting.
  333.         IDCMP_CLOSEWINDOW               - To report clicking the close gadget.
  334.         IDCMP_MENUPICK                  - To report menu-selections.
  335.  
  336.         Please  note  that  IDCMP_VANILLAKEY  must  _not_  be set. The current
  337.         keyboard handling does not allow this.
  338.  
  339.         Default is 0. Applicability is (I).
  340.  
  341.     SEE ALSO
  342.         WINDOW_IDCMPHook
  343.  
  344.     NAME
  345.         WINDOW_SharedPort -- ( struct MsgPort * )
  346.  
  347.     FUNCTION
  348.         To use a shared message port for the window.  If you pass a pointer to
  349.         a valid message port here the window will use this  port for receiving
  350.         events.
  351.  
  352.         Default is NULL. Applicability is (I).
  353.  
  354.     NAME
  355.         WINDOW_Title, WINDOW_ScreenTitle -- ( STRPTR )
  356.  
  357.     FUNCTION
  358.         To set the window title and the title of  the screen  while the window
  359.         is active.
  360.  
  361.         Defaults are NULL. Applicability is (ISU).
  362.  
  363.     NAME
  364.         WINDOW_MenuStrip -- ( struct NewMenu * ) ( struct Menu * )
  365.  
  366.     FUNCTION
  367.         This attribute has two data types to be considered.  Uppon creation of
  368.         the  window  object  the  data  expected  is  a pointer to an array of
  369.         NewMenu  structures  as  defined  in  <libraries/gadtools.h>. When you
  370.         obtain  this  attribute  with  OM_GET  you  will  get a pointer to the
  371.         created menus.
  372.  
  373.         To  make  the  menus  visible  to  your  program  you  must give every
  374.         selectable  menu an ID. The ID must be placed in the nm_UserData field
  375.         of the corresponding NewMenu structure.
  376.  
  377.         Example:
  378.  
  379.         #define ID_ABOUT        1
  380.         #define ID_QUIT         2
  381.  
  382.         struct NewMenu Menus {
  383.                 { NM_TITLE,  "Project",   NULL, 0, 0, NULL },
  384.                 { NM_ITEM,   "About...",  "?",  0, 0, (APTR)ID_ABOUT },
  385.                 { NM_ITEM,   NM_BARLABEL, NULL, 0, 0, NULL },
  386.                 { NM_ITEM,   "Quit",      "Q",  0, 0, (APTR)ID_QUIT },
  387.                 { NM_END,    NULL,        NULL, 0, 0, NULL }
  388.         }
  389.  
  390.         The  WM_HANDLEIDCMP  method  will  return ID_ABOUT when the "About..."
  391.         item is selected and ID_QUIT when the "Quit" item is selected.
  392.  
  393.         Default is NULL. Applicability is (IG).
  394.  
  395.     NAME
  396.         WINDOW_MasterGroup -- ( Object * )
  397.  
  398.     FUNCTION
  399.         To  set  the master group containing all objects for the window.  This
  400.         attribute   data   _must_  point  to a valid groupclass object or else
  401.         the  window  object  creation    will    fail.   It's   currently  not
  402.         possible   to   create   a  windowclass  object without a group object
  403.         attached  to it. The data expected here is a pointer to the groupclass
  404.         object  containing  all other gadget objects.
  405.  
  406.         Example:
  407.  
  408.         Object                  *WO_Window;
  409.  
  410.         WO_Window = WindowObject,
  411.                 WINDOW_Title,           "Whatever",
  412.                 ...
  413.                 WINDOW_MasterGroup,
  414.                         HGroupObject, HOffset( 4 ), VOffset( 4 ),
  415.                                 StartMember,
  416.                                         Button( "Quit", 0 ),
  417.                                 EndMember,
  418.                         EndObject,
  419.         EndObject;
  420.  
  421.         Default is NULL. Applicability is (I).
  422.  
  423.     NAME
  424.         WINDOW_Screen -- ( struct Screen * )
  425.  
  426.     FUNCTION
  427.         To set the custom screen on which the window should open.  If you want
  428.         your  window  to  open on a custom screen you can pass a pointer to it
  429.         here.  Please  note  that you  can use OM_SET to change this attribute
  430.         only when the window is not open.
  431.  
  432.         Default is NULL (default public screen). Applicability is (IS).
  433.  
  434.     SEE ALSO
  435.         WINDOW_PubScreenName
  436.  
  437.     NAME
  438.         WINDOW_PubScreenName -- ( STRPTR )
  439.  
  440.     FUNCTION
  441.         To set the name of the public screen on which the window should  open.
  442.         Please note that you can use  OM_SET  to change  this  attribute  only
  443.         when the window is not open.
  444.  
  445.         Default is NULL (default public screen). Applicability is (IS).
  446.  
  447.     SEE ALSO
  448.         WINDOW_Screen
  449.  
  450.     NAME
  451.         WINDOW_UserPort -- ( struct MsgPort * )
  452.  
  453.     FUNCTION
  454.         To obtain a pointer to the message port of the window.
  455.  
  456.         Applicability is (G).
  457.  
  458.     NAME
  459.         WINDOW_SigMask -- ( ULONG )
  460.  
  461.     FUNCTION
  462.         To  obtain  the  window signal mask.
  463.  
  464.         Example:
  465.  
  466.         Object         *WO_Win;
  467.         ULONG           mask;
  468.  
  469.         GetAttr( WINDOW_SigMask, WO_Win, &mask );
  470.  
  471.         do {
  472.                 Wait( mask );
  473.                 ...
  474.         } while ( ... );
  475.  
  476.         Applicability is (G).
  477.  
  478.     SEE ALSO
  479.         WINDOW_AppMask
  480.  
  481.     NAME
  482.         WINDOW_IDCMPHook, WINDOW_VerifyHook -- ( struct Hook * )
  483.  
  484.     FUNCTION
  485.         To  tie  yourself  into  the IDCMP handling of the window.  With these
  486.         attributes  you  can  set a hook which is called uppon  events set  by
  487.         the  WINDOW_IDCMPHookBits and/or WINDOW_VerifyHookBits attributes. The
  488.         hooks are called as follows:
  489.  
  490.         void hookRoutine( hook, object, imsg )
  491.                           A0    A2      A1
  492.  
  493.         struct Hook             *hook;
  494.         Object                  *object;
  495.         struct IntuiMessage     *imsg;
  496.  
  497.         The  pointer  to  the  IntuiMessage  structure  is read-only. Also the
  498.         message  is  passed to you before it is reply'd so you should not take
  499.         to long before returning.
  500.  
  501.         The  IDCMPHook  is  called  after  the window object has done it's own
  502.         processing on the message. The VerifyHook is called directly while the
  503.         window object does not need to process any verification messages.
  504.  
  505.         Default is NULL. Applicability is (I).
  506.  
  507.     SEE ALSO
  508.         WINDOW_IDCMP, WINDOW_IDCMPHookBits, WINDOW_VerifyHookBits
  509.  
  510.     NAME
  511.         WINDOW_IDCMPHookBits, WINDOW_VerifyHookBits -- ( ULONG )
  512.  
  513.     FUNCTION
  514.         To  set  the  bits  that  will cause the IDCMPHook or VerifyHook to be
  515.         called.  The bits you pass here are the standard system IDCMP_xxx flag
  516.         bits  found in <intuition/intuition.h>. Please note that some of these
  517.         bits  require  you  to set them first using the WINDOW_IDCMP attribute
  518.         described above.
  519.  
  520.         Example:
  521.  
  522.         struct Hook             *idcmp_hook;
  523.         Object                  *wd_obj;
  524.  
  525.         wd_obj = WindowObject,
  526.                 WINDOW_IDCMP,           IDCMP_INTUITICKS,
  527.                 WINDOW_IDCMPHook,       idcmp_hook,
  528.                 WINDOW_IDCMPHookBits,   IDCMP_INTUITICKS,
  529.                 ...
  530.         EndObject;
  531.  
  532.         This   will   cause   the   WINDOW_IDCMPHook  to  be  called  at  each
  533.         IDCMP_INTUITICKS event.
  534.  
  535.         Please note that the window class does not filter  out  any non-verify
  536.         bits  from  the WINDOW_VerifyHookBits you pass. This means that if you
  537.         set  IDCMP_GADGETUP  in  the  verification bits you will block out the
  538.         window  object  event  handler  from  receiving  gadget  messages. The
  539.         verification bits set should be restricted to the following bits:
  540.  
  541.         IDCMP_REQVERIFY
  542.         IDCMP_MENUVERIFY
  543.  
  544.         Defaults are 0. Applicability is (I).
  545.  
  546.     SEE ALSO
  547.         WINDOW_IDCMP, WINDOW_IDCMPHook, WINDOW_VerifyHook
  548.  
  549.     NAME
  550.         WINDOW_Font -- ( struct TextAttr * )
  551.  
  552.     FUNCTION
  553.         To  set the font to be used by the gadget objects. By default the font
  554.         of  the  screen the window is opened on is used. With this tag you can
  555.         select your own font.  Note that the font is opened with OpenFont() so
  556.         please make sure it is present in memory.
  557.  
  558.         Default is NULL. Applicability is (I).
  559.  
  560.     SEE ALSO
  561.         WINDOW_FallBackFont
  562.  
  563.     NAME
  564.         WINDOW_FallBackFont -- ( struct TextAttr * )
  565.  
  566.     FUNCTION
  567.         To  set the font to try whenever a window fails to open because it has
  568.         grown  to big for the screen. By default the fallback font is topaz 8.
  569.         If  you  pass a TextAttr here the window object will first try to fall
  570.         back  to  the supplied font and, if that also fails, it will try topaz
  571.         8. When topaz 8 fails the window will not open.  Note that the font is
  572.         opened with OpenFont() so please make sure it is present in memory.
  573.  
  574.         Default is NULL. Applicability is (I).
  575.  
  576.     SEE ALSO
  577.         WINDOW_Font
  578.  
  579.     NAME
  580.         WINDOW_HelpFile -- ( STRPTR )
  581.  
  582.     FUNCTION
  583.         Set the name of the file to be displayed when a  help-request  for the
  584.         object arives. Please note that the full path-name must be given.
  585.  
  586.         Default is NULL. Applicability is (IS).
  587.  
  588.     SEE ALSO
  589.         WINDOW_HelpNode, WINDOW_HelpLine
  590.  
  591.     NAME
  592.         WINDOW_HelpNode -- ( STRPTR )
  593.  
  594.     FUNCTION
  595.         Set the name of the node which is diplayed in the help window.
  596.  
  597.         Default is NULL. Applicability is (IS).
  598.  
  599.     SEE ALSO
  600.         WINDOW_HelpFile, WINDOW_HelpLine
  601.  
  602.     NAME
  603.         WINDOW_HelpLine - ( ULONG )
  604.  
  605.     FUNCTION
  606.         Set the line number  from  which the  file is  displayed.  This may be
  607.         useful if the help-file is not an AmigaGuide file.
  608.  
  609.         Default is 0. Applicability is (IS).
  610.  
  611.     SEE ALSO
  612.         WINDOW_HelpFile, WINDOW_HelpNode
  613.  
  614.     NAME
  615.         WINDOW_AppWindow -- ( BOOL )
  616.  
  617.     FUNCTION
  618.         To make the window an AppWindow.
  619.  
  620.         Default is FALSE. Applicability is (I).
  621.  
  622.     SEE ALSO
  623.         WINDOW_AppMask
  624.  
  625.     NAME
  626.         WINDOW_AppMask -- ( ULONG )
  627.  
  628.     FUNCTION
  629.         To  obtain  the app-window signal mask.
  630.  
  631.         Example:
  632.  
  633.         Object         *WO_Win;
  634.         ULONG           mask;
  635.  
  636.         GetAttr( WINDOW_AppMask, WO_Win, &mask );
  637.  
  638.         do {
  639.                 Wait( mask );
  640.                 ...
  641.         } while ( ... );
  642.  
  643.         Applicability is (G).
  644.  
  645.     SEE ALSO
  646.         WINDOW_SigMask
  647.  
  648.     NAME
  649.         WINDOW_UniqueID -- ( ULONG )
  650.  
  651.     FUNCTION
  652.         To provide the window with an ID. The ID must be a 32bit integer which
  653.         is  used  to  store  information on the window it's position and size.
  654.         This  allows  you to close and dispose of the window object, re-create
  655.         it  with the same ID, and the position and size of the window the last
  656.         time it was open is still the same.
  657.  
  658.         This tag  tracks  the  complete window bounds but if you re-create and
  659.         open your window with the WINDOW_PosRelBox tag specified only the size
  660.         of the  window is re-stored. The size will remain the same as the last
  661.         time the  window  was  open  but  the position will be adjusted to the
  662.         bounds specified with the WINDOW_PosRelBox tag.
  663.  
  664.         The ID must be non-NULL.
  665.  
  666.         Default is 0 (no storage is done). Applicability is (I).
  667.  
  668.     SEE ALSO
  669.         WINDOW_PosRelBox
  670.  
  671.     NAME
  672.         WINDOW_Window -- ( struct Window * )
  673.  
  674.     FUNCTION
  675.         To get a pointer to the window structure.  The pointer you get will be
  676.         NULL if the window is not opened.
  677.  
  678.         Applicability is (G).
  679.  
  680.     NAME
  681.         WINDOW_Bounds -- ( struct IBox * )
  682.  
  683.     FUNCTION
  684.         To  enable  you  to pick the position and the size of the window. This
  685.         attribute expects a pointer to a struct IBox in which the position and
  686.         size are stored. The windowclass will check the values and adjust them
  687.         if necessary. I.E. You cannot specify a size smaller than  the minimum
  688.         possible size.  Query this attribute with  OM_GET to find  out exactly
  689.         where the window is located and what it's size is.
  690.  
  691.         Querying this attribute with OM_GET is only  possible when  the window
  692.         is open. To get this attribute with OM_GEt you specify  a pointer to a
  693.         struct IBox in the method.   The  class  will  write the bounds in the
  694.         struct IBox.
  695.  
  696.         Please  note  that  this   attribute   overides  the  WINDOW_Position,
  697.         WINDOW_ScaleWidth, WINDOW_ScaleHeight and WINDOW_PosRelBox attributes.
  698.  
  699.         Default is NULL. Applicability is (ISG).
  700.  
  701.     SEE ALSO
  702.         WINDOW_Position, WINDOW_ScaleWidth, WINDOW_ScaleHeight,
  703.         WINDOW_PosRelBox
  704.  
  705.     NAME
  706.         WINDOW_HelpText -- ( STRPTR)
  707.  
  708.     FUNCTION
  709.         To setup  a  text  which  will be displayed if the help-key is pressed
  710.         while the  mouse  pointer  is located above the window. This attribute
  711.         should be  used  to  attach small on-line help to the window. The text
  712.         you specify will be shown in a small BGUI_RequestA() type of requester
  713.         so you  must  make  sure  that  everything  fit's  nicely on a 600x200
  714.         screen.
  715.  
  716.         The specified text may contain any of the infoclass command sequences.
  717.  
  718.         This   attribute  overides  the  WINDOW_HelpFile,  WINDOW_HelpNode and
  719.         WINDOW_HelpLine attributes.
  720.  
  721.         Default is NULL. Applicability (IS).
  722.  
  723.     SEE ALSO
  724.         WINDOW_HelpFile, WINDOW_HelpNode, WINDOW_HelpLine,
  725.         infoclass/INFO_TextFormat, bgui.library/BGUI_RequestA()
  726.